System, Method and Computer Program Product for Collecting and Distributing Mobile Content

ABSTRACT

A system, method and computer program product facilitating communications between a plurality of users using wireless mobile devices is provided. In one embodiment, the method comprises receiving, from each of a plurality of mobile devices, information of a location of the mobile device and information sufficient for identifying the user associated with the mobile device, receiving from a first mobile device information regarding a business located at a first location that is supplied by the first user, receiving location information of a second mobile device associated with a second user, determining that the second mobile device is within a distance of the first location, and in response, transmitting data related to the business, based at least in part on the information supplied by the first user, to the second mobile device for presentation to the second user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.application No. 12/476,910, filed Jun. 2, 2009, which claims priority toU.S. Provisional Application No. 61/058,116 filed Jun. 2, 2008, whichare hereby incorporated herein by reference in their entirety for allpurposes.

FIELD OF THE INVENTION

The present invention generally relates to providing dynamiccommunications and more particularly, to a system and method forcollecting and distributing and presented dynamic real-time metadatasuch as reviews and ratings.

BACKGROUND OF THE INVENTION

Various websites allow consumers to provide ratings and reviews ofproducts. In addition, various websites and technology allow users(consumers) to communicate with each other on the website. However,there is a need to permit users connect across the Internet (or othernetwork), to receive ratings and reviews of various media content (e.g.,websites, videos, audio, images, web pages, products, services, persons(such as users of dating sites, users of social networks, persons in thenews, celebrities, politicians, etc.), to receive the ratings andreviews in real time when viewing internet content that contains therated content, and to easily and quickly provide ratings and reviews ofa multitude of types of media content.

In addition, there is a need to allow consumers to read reviews andprovide reviews of locations (e.g., a business, park, etc.) wherein thelocation data is collected by a mobile telephone. Furthermore, there isa need to allow consumers to find other consumers who visit the samelocations and the same websites and facilitate communications betweensuch consumers.

These and other advantages may be provided by various embodiments of thepresent invention.

BRIEF DESCRIPTION OF EXAMPLE EMBODIMENT OF THE INVENTION

The present invention provides a system and method for providing ratingsrelated to a plurality of websites, content and/or locations. Oneembodiment of the system may include program code adapted to execute asa browser toolbar to implement a method comprising retrieving anidentifier from the end user computing device, transmitting a request toa remote computer system for a rating value in response to a web pagebeing loaded into the browser, receiving a rating value from the remotecomputer system, displaying the rating value in the toolbar, receiving afirst user rating of the user from the remote computer system,displaying the first user rating in the toolbar, receiving a user inputcomprising a second user rating from the end user, transmitting thesecond user rating to the remote computer system, and displaying thesecond user rating in the toolbar. The remote computer system may storeuser ratings and reviews and transmit user ratings, an average rating,and a review count. The remote computer system may also parse URLs todetermine whether the domain of the URL comprises a domain for whichcontent may be rated. By parsing out an identifier of the URL for suchdomains, the system can be used to rate profiles of people on socialnetworks and dating websites.

The invention will be better understood by reference to the followingdetailed description taken in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is further described in the detailed description thatfollows, by reference to the noted drawings by way of non-limitingillustrative embodiments of the invention, in which like referencenumerals represent similar parts throughout the drawings. As should beunderstood, however, the invention is not limited to the precisearrangements and instrumentalities shown.

FIG. 1 is a diagram of a plurality of users interacting with an exampleembodiment of the present invention;

FIG. 2 is a flow chart of a process for implementing an exampleembodiment of the present invention;

FIG. 3 is a flow chart of a process for implementing an exampleembodiment of the present invention;

FIG. 4 a is depicts an example representation of an average rating andreview count according to an example embodiment of the presentinvention;

FIGS. 4 b-c depict an example toolbar for implementing an exampleembodiment of the present invention;

FIG. 5 depicts a server system according to an example embodiment of thepresent invention;

FIG. 6 depicts an example interface for providing a rating and reviewaccording to an example embodiment of the present invention;

FIG. 7 depicts an example of a portion of user profile of a host websitewherein a plurality of ratings and reviews are displayed according to anexample embodiment of the present invention;

FIG. 8 depicts an example interface for providing initiating a reviewaccording to an example embodiment of the present invention; and

FIG. 9 depicts an example interface for implementing a search accordingto an example embodiment of the present invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

In the following description, for purposes of explanation and notlimitation, specific details are set forth, such as particular networks,communication systems, computers, terminals, devices, components,techniques, data and network protocols, software products and systems,operating systems, development interfaces, hardware, etc. in order toprovide a thorough understanding of the present invention.

However, it will be apparent to one skilled in the art that the presentinvention may be practiced in other embodiments that depart from thesespecific details. Detailed descriptions of well-known networks,communication systems, computers, terminals, devices, components,techniques, data and network protocols, software products and systems,operating systems, development interfaces, and hardware are omitted soas not to obscure the description.

The present invention comprises a system and method for providingdynamic supplemental content such as reviews and ratings for third partywebsites and other media content. Referring to FIG. 1, in one embodimentthe system includes a server 100 that stores supplemental content suchas ratings and reviews of the media content (e.g., website). The server100 may also store and serve a website for members to read, edit, andcomments on reviews. In addition, the system may include a client sideprogram code (CSPC) 115 that executes, for example, as a browser plug-in(e.g., a toolbar plug-in) in a plurality of clients on end usercomputing devices 105. In addition, the CSPC 115 may be implemented in aframe or as code, embedded into a web page by a website operator.However, due to security issues, many browsers may preclude someoperations of some embodiments of the CSPC 115 when operating as aframe. Consequently, in the description below the CSPC 115 is describedas a browser (toolbar) plug-in.

Different embodiments of the present invention may be used to rate andreview different content items. For example, a first embodiment may beused to rate or rate and review any website. A second embodiment mayadditionally facilitate rating and reviewing of images, videos, andprofiles of members of a plurality of social networks and dating sites.A third embodiment may further facilitate ratings and reviews oflocations. By communicating with the server 100, the CSPC 115 allowsusers to rate content items, see ratings of the content items (e.g., anaverage of the ratings supplied by other members of the service), see acount of the number of reviews for content items, and view and providevarious other data.

In the following embodiment, users register with a website that managesthe review and rating data (hereinafter the “host website”). The hostwebsite may be stored and served by the server 100 and comprise a socialnetwork including the ability to invite friends, communicate withfriends, search for friends, create/join groups, etc. However, the hostwebsite may also store (and display) the ratings and reviews of eachuser, the comments on each review, By interacting with the server 100via the host website, users may search reviews based on keywords (e.g.,search for highest ratings and/or reviews for a product), search fordomains or URLs (e.g., find all the reviews associated with a website orpage), search by location (e.g., see all reviews for a specificlocation), and/or perform various other searching. In one embodiment,the toolbar CSPC 115 includes a text box for searching the database ofthe server 110 based on keywords. Upon registration, in this embodimenta cookie is stored on the user's computer that include a user identifierand used by the CSPC 115 in communications with the server 100 toidentify the user.

For each website visited by a user, the CSPC 115 executing in the client(e.g., browser) of that user's computing device 105 may send a requestfor, receive information of, and display a rating (the average ratingand the user's previous rating) and the number of reviews posted forthat website (if any). The number of reviews (hereinafter “reviewcount”) and rating may be displayed as part of the browser such as underthe address bar or in a side bar. See FIGS. 4 a-b. Alternately, the CSPC115 may display the information in the task bar or in separate frame. Inone embodiment, the CSPC 115 may be “separate from” (not a plug-in) andcommunicate with multiple types of browsers (e.g., Internet Explorer®,Firefox®, Chrome®, Opera®, etc.).

In one embodiment, the CSPC 115 executes on the end user's computingdevice and transmits a notification to the server 100 each time a webpage of a new domain (or, alternately, anytime a new web page) is loadedinto the client browser to thereby inform the server 100 that the useris now viewing content of a new (different) website (or new webpage).The notification may include the new domain (e.g.,RealEstateProLocator.com) or the URL of the new webpage (e.g.,realestaterpolocator.com/FAQs.html) and the identifier (ID) of the user.

Upon receiving the notification, the server 100 determines the averageuser rating for the domain, which may be, for example, on a zero to fivestar rating system. The server 100 may also determine the number ofreviews (posted by all users who have visited the website) of the newdomain or webpage (i.e., determine the review count). The server 100then transmits the rating (e.g., a number between zero and five such as4.2) and a number representing the review count. In addition, if thatuser has previously rated the website (or webpage) the server 100retrieves and transmits the user's previous rating as well. Theinformation of the average rating, the review count, and the user'sprevious review are referred to herein collectively as “rating/reviewdata”. In this embodiment, the average is computed. In otherembodiments, a mean or other statistic of significance may be computedand provided.

The CSPC 115 receives the rating data and displays the average rating,the review count for the website, and the user's previous rating asdiscussed above. In one example, the display may include five stars andwhere a rating of four is received, four stars may be demarcated in somefashion such as by highlighting them via a first color and the otherremaining star not demarcated or highlighted (i.e., displayed as asecond color) to thereby indicate the website received an average fourstart rating as shown in FIG. 4.

The user may also elect to rate the website and/or to provide a reviewof the website (or other content). In one embodiment, the user simplyclicks on one of the same five stars (in the frame, or in the browser)to rate the website. In this embodiment, a separate set of stars areused to display the user's previous rating (if any) as shown in FIG. 4b. To rate the website or webpage, the user simply clicks on one of thestars. The star clicked on corresponds to a rating (1, 2, 3, 4, or 5from left to right) that is transmitted to the server 100 by the CSPC115 (along with the identity of the domain or webpage being rated andthe user). The server 100 then stores the rating (e.g., as a first orupdated rating for that user) and alters the average rating for thatdomain (or webpage) accordingly for when users visit the website orwebpage subsequently.

If the CSPC 115 is embedded in the web page, the rating data may bedisplayed on the web page in which case the user simply clicks on thedesired star displayed on the web page.

The server 100 stores the rating data (e.g., a number from 1-5) inassociation with that user and the domain (or other content item). Usersalso may click on the review count to read reviews of that content item,and to provide reviews about the website or other content.

Referring to FIG. 1, a first user (User A) provides a rating and areview of website A to the server 100 (e.g., via an HTML form).Subsequently, when User B visits website A, the average user rating forwebsite A and the total review count are transmitted to client B fordisplay to User B (and include User A's rating and review as part of thereview count).

Any user may also elect to read the reviews by clicking on the reviewcount 122 of FIG. 4 c (the number representing the number of reviews forthe website), which causes a request for the reviews for that domain tobe sent to the server 100, which in response, retrieves and transmitsthe most recent thirty reviews, which may be displayed in a cascadedlayer above the existing web page or in a new browser or in a new tab.

The user may read the reviews and request additional reviews (e.g., thenext thirty). The user may also elect to post a review by clicking on a“Review This” button 121 of the CPPC toolbar 115 which may request theuser log in with (r provide) a user name and password prior to providingthe HTML form as illustrated in FIG. 6. In this embodiment, the sameHTML form may be used to first supply and to edit reviews. As discussed,in this embodiment, a cookie stored on the end user's computerautomatically logs the user in by storing a user ID. The user's review(and rating) are stored in a database in communication with the server100. The user also may provide a rating of the domain when posting thereview. As shown in FIG. 6 and discussed below, the user may also supplyone or more tags (e.g., descriptive words) to be stored along with thedomain (e.g., to facilitate searches by user).

Referring to FIG. 1, User B in this example clicks on the review count(e.g., 29) in the browser tool bar (as illustrated in FIG. 4 a). Inresponse, client B, due to operation of CSPC, transmits a request forthe reviews and ratings of the domain presently loaded in the client,which in this example comprises an HTML page that is displayed in a newtab of the existing browser (or could be in a new layer floating overthe web page). Examples of reviews and ratings are depicted in FIG. 7(although these reviews and ratings are of different websites andprovided by the same user).

The received web page may display the most recently received 30 reviews(along with their associated ratings), including the review provided byUser A. User B may then click on a link in the page to request a form tosupply a review and rating. The server 100 receives the request andtransmits the requested form to Client B such as the form depicted inFIG. 8. In the embodiment depicted in FIG. 8, the user may rate/reviewwebsites and persons on a plurality of social networks and a pluralityof dating sites. Thus, the user may need to supply information fordetermining whether they are rating a person or website. In otherembodiments, the server 100 may include program code for determiningwhether the URL corresponds a that of person and, if not, the server 100knows the user is rating a website. Thus, the server 100 may parse outthe domain and query a database (a person table in the database) for thedomain (where the database lists domains for which person's may berated). For example, the person table of the database may list all thedomains for which person's may be rated (e.g., and include Facebook®,MySpace®, Match®, Digg®, Twitter®, etc.). If the domain is found, theserver 100 supplies a form for reviewing a person and if the domain isnot found the server 100 transmits a form for reviewing a website (seeFIG. 6). When the user completes and submits the form, the server storesthe received information in the database in association with that domainand the submitting user. Similarly, when a URL is supplied by thetoolbar to the server the server 100 may receive the URL parse thedomain from the URL, determine whether the domain comprises a domain onwhich content may be rated (by searching a first table in the database).If the domain comprises a domain on which content may be rated, theserver may parse a content identifier from the URL (by retrievingpre-text and/or post-text information (used for parsing) associated withthe domain from the first table), search the database for a contentrating value associated with the domain and the content identifier, andtransmit the content rating value as the rating value to the browserexecuting the CSPC that transmitted the request.

The reviews and ratings are stored by the server 100 in a database forretrieval in the future when other users request to read reviews of thatdomain. The server 100 also allows users to search reviews of aparticular domain name. For example, a particular domain may have 1000reviews, but a user may only be interested in reviews for the domainthat relate to the website's customer service, return policy, or aspecific product offered for sale by the website. Thus, the server 100may serve an HMTL form that allows the user to input data for searchingthe reviews of a particular domain for particular search terms. Anexample of such a form is illustrated in Figure

In addition, the search form may be used to search all the domains forreviews related to a particular product or service as well as to searchfor all the reviews of a particular domain.

Websites may be categorized into a directory-like fashion according tothe subject matter, such as the type of product(s) sold, serviceoffered, information offered, etc. More specifically, the database maystore information (e.g., tag words) associated with each content item(e.g., domain) that corresponds to the category of the content item.Users may request and receive the directory and click on any subjectmatter to see the websites rated in that category such as, for example,in a descending order of their associated rating (e.g., with the higherrated websites displayed above lower rated websites). The server alsomay allow advertisers (only rated or both rated and non-ratedadvertisers) to bid for advertisements (e.g., cost per click) based onsearch keywords, category, and/or subcategory. Thus, when a usersearches for a product or clicks on a category in the directory,appropriate advertising may be presented in the margins of the web pagedisplaying the search results and wherein the ads displayed are selectedbased on a bid price associated with the search terms and score assessedto the ad (e.g., which score may be based on a click through rate of thead).

FIGS. 2 and 3 illustrate an example process for performing an exampleembodiment of the present invention. At process 200, the user isoperating a client browser and the web page of a new domain is loadedinto the client.

At 205, the program code 115 executing on the user's computer (e.g., theCSPC such as a browser toolbar plug-in), determines if the domain of thewebpage loaded is a new domain (or it is the same domain as thepreviously loaded webpage). In some embodiments, the URL of each webpage is transmitted even if it is the same domain as the previous webpage.

In this example, each time a web page is loaded (e.g., the web addresschanges), the CSPC 115 may compare the domain of the web address withthe domain of a previously stored web address (or domain). If the domainis the same, the CSPC 115 does not transmit anything to the server 100in this embodiment, but at 215 stores the new web page address in memory(although this may not be necessary in many embodiments). However, ifthe domain is different (not the same as the domain of previously storedweb address or domain), process 210 transmits a notification thatincludes information of the new domain to the server 100 (which maycomprise transmitting the new web page address (URL)) and the identifier(ID). The CSPC 115 also stores the new domain (which may be stored aspart of the new web page address stored) in memory.

In other embodiments, each time a web page is loaded, the web pageaddress and user ID are transmitted to the server 100 and the server 100determines if the new web page is a web page of a new domain or othercontent that is rate-able (and sends the average rating and the reviewcount) by comparing the domain (or address) of the new webpage with thedomain of the previous web page (stored in memory in association withthe transmitting client or user ID). Alternately, the server simplydetermines the domain upon receiving each such transmission, retrievesthe rating and number of reviews, and transmits them to the client to bereceived by the CSPC 115.

At 220, the server 100 receives the domain (which may be part of a webaddress transmitted) and user ID (and if necessary parses the webaddress to obtain the domain) and then determines the average rating(e.g., by retrieving it from memory or computing the average) and thenumber of reviews for that domain. The server 100 may then store thedomain in memory in association with the user ID. Note other embodimentsalso (or alternately) may use a client ID when performing many of theseprocesses, which may be stored in memory with (or instead of) a user ID.In addition, the server 100 may also retrieve the previously storedrating of that user for that domain.

At 225, the server 100 then transmits the average rating and the reviewcount (and previous rating of that user) to the client transmitting thenotification.

At 230, the CSPC 115 receives and displays the average rating, previousrating, and review count to the user in the browser (e.g., in a toolbarunder the address text box, on a side bar, in a frame) or in a task bar,frame, the web page, or other suitable location. An example toolbar isillustrated in FIGS. 4 b and 4 c.

While viewing the website, the user may elect to rate the website. Atprocess 235, the user rates the website by clicking on one of the fivestars 124, which may be in the browser (e.g., in a toolbar under theaddress text box, on a side bar, in a frame), in a task bar, frame, theweb page, or other suitable location. In one example illustrated in FIG.4, the website has received an average rating of 4 stars and has 29previously stored reviews. Thus, the user may click any of the fivestars in order to provide a rating of one through five (from left toright in this example embodiment). The CSPC 115 transmits data of theuser's rating selection to the server 100 at 240. The transmission mayalso include the user ID (which may be previously stored in a cookie andretrieved for transmission) and the domain name (which may betransmitted as part of the entire web page address that is transmitted).

The server 100 receives the transmission of the user's rating selectionand, in some embodiments, the user ID and/or domain name (e.g., URL). Insome embodiments, the domain name need not be transmitted because theserver already knows the domain name that the user is viewing from step210. In some embodiments, the user ID need not be transmitted. Forexample, at initiation of the browser the CSPC 115 may log the user intothe server 100 (by using information stored in cookie) and initiate asession and provide the IP address of the user's computing device. Thus,the identifier need not be a user ID each time but may be any identifiersufficient to allow the server 100 to know the user who is providing therating.

In order to prevent multiple reviews of a website by a single person(which could skew the average) the server 100 may be configured toprevent users from providing multiple rating selections and reviews fora single website (or permit only a predetermined number). Based on theinformation received, the server 100 determines if that user (identifiedby the user ID or other data such as an arbitrary unique identifier) hasalready provided a rating of that website at 245. For example, theserver 100 may compare the domains stored in memory in association withthat user or that user's computer (by comparing the user IDs associatedwith the domain being rated). If the server 100 determines that the userhas already rated that website (or that the user has reached thepredetermined number of permitted ratings), the server 100 may discardthe user's rating selection data. Alternately (in this embodiment), atstep 250 the server 100 may replace the previous rating of that user forthat domain with the newly received rating (in this embodiment theuser's rating for each website is stored in memory in a database). Inaddition, the server 100 revises the average user rating for the domainbeing rated (and stores the new average in memory), which may includesubtracting the user's previous rating (a number from 1-5) from thetotal sum of all the user ratings and adding the new rating (a numberfrom 1-5). Thus, in this embodiment, the user may change his or herrating simply by clicking on the star 124 associated with the user's newselection of a rating.

If at step 245, the server 100 determines that the user has not yetrated that domain, at step 255 the server 100 stores the user's ratingdata (and associated domain) in memory in association with that user andalso updates the average rating for that domain. Updating the averagerating may include adding the user's rating (a number from 1-5) to thetotal sum of all the user ratings (stored in memory) and incrementingthe total number of ratings for that domain. In some instances, the usermay be the first person to rate the content item (e.g., domain). Thus,the server 100 may search for the domain in the database and if a nullif returned, send a notification to the client that there are no ratingsor reviews. The toolbar may then tell the user to be the first to reviewthe domain. Upon receiving a rating of the domain, the website may storethe rating supplied by the user as the average rating (in addition tostoring the rating in association with the user.)

In an alternate embodiment, the CSPC 115 may be configured to performstep 245—to determine if the user has already rated a website (domain)and transmit an indication (of whether the user has rated the website)to the server 100 when the user provides a rating input. In anotherembodiment, the CSPC 115 may simply discard (e.g., ignore) the user'sinput of a rating if the user has already rated the website. Thus, alist of domains (or other content items) already rated by the user (withthe rating) may be stored on the user's computing device (e.g., in acookie).

As discussed, a user may provide a rating—a new rating or an update of aprevious rating—by clicking on one of the stars. In other embodiments,the user input may be in another form such as by inputting into text box(or using a drop down menu to provide) a number between 0 and 100, ascholastic type rating (such A, B, C, D, or F—including pluses andminuses) or other desirable rating system.

In addition to simply providing a rating, users may elect to readreviews and/or to provide a rating and a review (e.g., a text input).Referring to FIG. 3, the user clicks on the number of reviews at step260. In the example shown in FIG. 4 a, the user would click on “29” (ora button that reads “Read reviews”), which causes the CSPC to transmit arequest for reviews to the server 100 at 265. Referring to FIG. 4 c, theuser may click on the “3 Reviews” button 122 to read the reviews. Therequest may include the user ID (or other ID) and the domain name (e.g.,transmitted as part of the URL) of the presently loaded web page.

At 270, the server 100 receives the transmitted request data andretrieves the most recently stored twenty-five reviews (and theirassociated ratings) and transmits them to the client (e.g., as an HTMLweb page). The CSPC 115 receives and displays the received reviews andassociated ratings in a new browser tab. Alternately the received datamay be displayed in a new browser, a layer, a side browser window, or aframe of the existing browser window. Each review may include a rating,a review title (“Great website for kayaks”), an author (who provided thereview), a date the review was written, review text, and metadata aboutthe review. For example, the metadata about the review may include aplurality of comments (where the other user comment on the review). Inaddition, the metadata may include a rating of the review. In thisexample embodiment, referring to FIG. 7, users reading reviews may clickon one or more buttons such as a thumbs up button 131, thumbs downbutton 132, and a bogus button 133. A thumbs up vote indicates that thereview was helpful and a thumbs down button indicates that the reviewwas not helpful. A bogus vote indicates that the review is a fake (orotherwise dishonest) review (e.g., an owner of a website reviewing hisor her own website). A tally of the total number of thumbs up, thumbsdown, and bogus votes may be stored and transmitted by the server 100for display via the host website. Thus, the integrity of the reviews maybe increased by eliminating reviews that have a predetermined number (orpercentage) of bogus votes and/or sorting the reviews (in searchresults) by descending number of net thumbs up votes (net thumbs upvotes computed by the number of thumbs up votes minus the number ofthumbs down votes).

The user may interact with the received web page to request additionalreviews (and ratings) for review and/or to post a review. If the userrequests to post a review, the user may be required to log in with auser name and password at step 275 (or to register with a user name andpassword if the user has not previously done so). Alternately, theuser's user ID, stored in a cookie, may be retrieved by the CSPC 115 andtransmitted to the server 100 to authenticate the user. Any suitablemethod of identifying (and in some instances authenticating) the usermay be employed.

At step 280, the server determines if the user has already rated orreviewed and the website. If the user has rated or reviewed and ratedthe website, the server retrieves that user's rating or review andrating and transmits the retrieved information in the HTML form to theclient for editing at step 285 as illustrated in FIG. 6. For example thetext of a previously provided review may be displayed in a text box bythe client to allow editing of the review by the user. The rating may beupdated by clicking on a new star (on the HTML page) to update therating when the form is submitted as discussed above.

If the user has not reviewed the website before, the server may simplytransmit a html form to the user to supply review content. In eitherinstance, the user may supply information to the form, select a ratingand submit the form to the server 100. In some embodiments, the toolbar(the CSPC 226) may cause a text box to be displayed (e.g., in a cascadelayer) to allow the user to supply a review (or edit a review).

At step 290, the server 100 receives the new review and rating data. At295, the server 100 stores the user's new rating and review data inmemory in association with the user (e.g., the user ID) and domain. Inaddition, at 297 the server 100 revises the average rating for thedomain in memory and increments the number of reviews for the domain.

While the embodiment described above is described in the context ofreviewing a third party website, the present invention is alsoapplicable for providing ratings, reviews and/or other supplementarycontent for nearly any media content include web pages, sub-domains,videos, audio, images, products, services, persons (e.g., users ofdating sites, users of social networks, persons in the news,celebrities, politicians, etc.) and others.

For example, the invention may be used to rate sub-domains (such as aparticular social network hosted by Ning® or a vender having a virtualretail store hosted on a sub-domain) or a web page instead of, or inaddition to, the domain. For example, an embodiment of the presentinvention may be used to rate and review the web pages of individuals ofsocial networks (e.g., Facebook®, MySpace®, Hi5®, LinkedIn®, Twitter®,etc.), a news article, or a particular product (e.g., displayed andoffered for sale on a web page thereby providing reviews of theproduct—instead of or in addition to—rating the website selling theproduct). The system may be used to provide ratings and reviews of aparticular manufacturer or vender (e.g., an ebay® seller or buyer) eventhough that manufacturer or vender may sell products (or the product maybe sold) via multiple websites.

In addition, the present invention may be used to rate and/or reviewmultimedia content such as a video content (e.g., a video clip. sitcom,movie, sporting event, game show, etc.) or audio content (e.g., a song,comedy piece, speech, etc.) offered by any website.

Such reviews and ratings may be provided across multiple websitesirrespective of the server(s) hosting the content or the website servingthe link (for requesting the content).

Likewise, people may also be rated/reviewed. For example, users may ratea person in the news, a person who is a user of a social networkwebsite, a person who is a user (e.g., has a username and/or profile) ona dating site, a person who leaves comments on websites or blogs, etc.

In order to rate a particular domain, webpage, video content, newsarticle, person, audio content, or sub-domain (collectively referred toherein as a “content item”), the server 100 in one example embodimentneeds to receive information identifying the content item. In oneexample, the server receives the web address of each web page loaded andparses the web page to determine whether any content loaded into thebrowser includes a content item (e.g., web page, domain, video, etc.)that has been (or can be) rated. In other embodiments, the content ofthe web page may be parsed by the CSPC 115 (or server 100) to determineif any content on the web page has been (or can be) rated.

In one example, the server 100 may store in memory each review andrating in association with information identifying the content beingrated/reviewed (for content other than a domain) such as a file name (oridentifier) and stores the information in association with the domain.

For example, a web address loaded into a web page may comprise:http://www.youtube.com/watch?v=79qixL2YVf4

The server 100 may store ratings and reviews in association with thefilename or the identifier of “79qixL2YVf4” which follows “v=” (whichidentifies a video served by YouTube®) in association with the domainYouTube.com. Thus, in some embodiments the CSPC 115 may receive anddisplay multiple ratings and numbers of review (review count) when asingle web page is loaded. However, for many websites such as popularsocial networks and dating websites, only the people of such sites maybe rated/reviewed.

For content on a web page that the user wishes to rate, the user mayhighlight or cut and paste (or type) information identifying the contentto be rated (e.g., a file name, a person's username, a portion of anarticle, a person's name, a product name, a product model number, amanufacture name, etc.) into a text box in the frame, browser (e.g.,toolbar), or web page. The identifying information of the content itemto be rated, the webpage (or domain) associated with the content (e.g.,on which the content is contained), the user's user ID, and the ratingmay then be transmitted to the server 100 for storage. The domain nameassociated with each rated content may be classified (e.g., by the user,system operator, or server based on metadata found in web pages of thewebsite) into various categories (e.g., news, social network, dating,retail, video site, etc.). Thus, if a user is browsing a dating website(e.g., match.com®), the server 100 need only search the database forrated content items associated with that domain. If however, a user isbrowsing a retail website, the server 100 may search for rated contentthat may be associated with that domain and other domains (websites)having the same classification (e.g., retail websites).

As another example, when a person's Facebook® page is loaded it mayinclude a video, a still image, and an audio file (even though the videoand audio file are not played at loading of the webpage). The CSPC 115may display a rating (and a review count) for each of the domain(Facebook.com), the webpage of the person's profile (e.g.,facebook.com/john.html), the video content (john's video having a filename john.wmv), the audio content (file name john.mp3). For the videoand audio content, the web page may include a link to a web address thatincludes the file names so, even though the video content or audiocontent may not (yet) be presented to the user, the CSPC 115 (and server100) may collect the file names from the web page and provide theaverage rating and review count of each. In addition, the server 100 maystore all the file extensions for each type of content item (e.g.,video, audio, web page, domain) so that the server 100 can distinguishbetween the different media types of media being reviewed.

The ratings and reviews displayed in the above described embodiments hasbeen displayed separate from the content of the webpage (e.g., in aframe or in a browser toolbar). However, other embodiments may displaythe average rating and review count over (or on) the web page and, insome embodiments, the rating and review count may displayed adjacent thecontent (e.g., domain, video, username, product, etc.) for which ratingsor ratings and reviews apply such as, for example, in an overlay (e.g.,a different cascading style sheet layer, flash) or by encoding thecontent of webpage. This may be especially helpful for when one web pagecontains multiple items having associated ratings and reviews.

For example, upon receiving search results from a search engine such asGoogle®, Yahoo!®, MSN®, or other engine, the domain name of each searchresult on the search results page may be collected and transmitted tothe server 100 by the CSPC 115, which, in response, transmits an averagerating and review count (if any) for each domain name included in eachsearch results.

Upon receipt, the CSPC 115 may display the average rating and reviewcount for each item of search result (e.g., each domain of the searchresult) over the search result web page with each average rating andreview count being in close proximity to (or in some other way visuallyindexed or associated to) the associated search result item (containingthe domain for which the average rating and reviews apply. The displaymay be accomplished by presenting the review count and ratings in adifferent cascading style sheet layer or by encoding the HTML page ofthe search results with the review counts and ratings. The user mayclick on the review count to read the reviews or click on a star toprovide a rating of any of the search results. Future searches may thenfactor in the rating of each search result item when sorting the searchresults (prior to being transmitted to the client requesting thesearch). Thus, if the search engine has access to the rating data (e.g.,to server 100), the rating may be used to determine what search resultsto present and used (along with other factors) to sort the searchresults.

Alternately, the CSPC 115 may display a small icon near each searchresult indicating that a rating is available for a particular website(when available) and when the user moves the cursor over the searchresult item the rating and review count my be displayed in a pop-upflash bubble.

The prevent invention also may be used to receive ratings (and reviewcounts) or to provide ratings and reviews of emails (or content inemails such as HTML based email such as Hotmail.com®), content ininstant messages, blogs, micro-blogs (e.g., Twitter pages), etc.

As discussed, the present invention may be used to receive ratings (andreview counts) and/or to provide ratings and reviews of people suchpersons who post profiles on a dating server (e.g., match.com®,plentyofFish.com®, dating.com®, etc.), social networks (e.g., Facebook®,MySpace®, HI5®, etc.), ebay sellers/buyers, people who leave comments onwebsites such as blogs. For example, when a person leaves a comments ona blog they typically must sign in using a username which is included atthe end of their comment when other users read the comments (e.g., byhighlighting the username with the cursor (or cutting and pasting theusername into a text box) and clicking on one of the 5 five stars).Thus, when a page is loaded the CSPC 115 and/or server 100 may determineif any users (or in other words or phrase) on the web page have anassociated rating. If so, the CSPC 115 and server 100 collaborate toprovide the rating(s) of the users (and other content on the web page)to the end user viewing he webpage (e.g., as described above withrespect to web pages). In some embodiments, each user may configure hisor her CSPC 115 to display ratings and reviews of only selected content.For example, the user may wish only to see reviews and ratings ofwebsites and people (but not images and videos). The configuration datamay be transmitted to the server (or provided to the server 100 by theuser via the host website) so that the server 100 does not transmit suchdata to the client.

Referring to FIG. 5, the system may also be used to provide alerts toend users. For example, if a first user wishes to notify other usersthat a particular website has committed a fraud, they may “flag” thewebsite with a fraud alert when supplying a review (e.g., by clicking ona particular button that stores a fraud alert in memory of the server100).

When subsequent users visit that website, they will receive the averagerating and review count display and additionally, a fraud alert (orfraud count or other alert) indicating the number of users reportingfraudulent behavior by the domain (or vender, manufacturer, person,user, etc.). The user may click on the fraud alert to read the fraudalert, which may comprise a description of the fraudulent activity asdescribed by the user supplying the fraud alert.

In other embodiments, the server 100 may periodically retrieveinformation about the domain from another remote server such a webserver managed by the Better Business Bureau® (bbb.org) that receivesand catalogs complaints and other data about businesses. Periodically(e.g., weekly) or in real-time upon receiving a notification from aclient, the server 100 may request information from such remote serversthat relates to fraudulent activity, complaints, etc. and similarlyprovide (similar to provide an indication of fraud) an indication ofsuch to the CSPC 115 for display to the user similarly to the fraudalert.

The server 100 may access one or more other servers that offer coupons,discounts and other financial compensation or incentives for particularwebsites. When the user visits a domain (or web page) for which couponcontent is available, the server 100 transmits a coupon alert to theCSPC 115 for display to the user. The user may click on the coupon alertto review the coupon description and, if desired, access the third partywebsite to request the coupon.

The server 100 may access one or more other servers that offer productinformation such as a list of websites offering a product (associatedprices of each), and in some instances reviews (e.g., simon.com,shopping.com. bizrate.com, etc.). When the user visits a domain forwhich product content is available, the server 100 transmits an alert tothe CSPC 115, which displays a product alert to the end user. The usermay click on the product alert to review the product content (e.g., alist of other web retailers of the product offered by the webpage thatthe user is presently viewing) to compare the price and terms (e.g.,shipping, tax, etc.) for the product offered by other websites.Alternately or additionally, in response to a user searching for aparticular product on a search engine (e.g., Google®) or retailer (e.g.,Amazon®), the CSPC 115 (e.g., embodied as a browser toolbar) maytransmit the search term(s) to the server 100 (or other remote computersystem) and, in response, receive and display the lowest price offeredfor the product searched (or a similar product). The data of lowestprice and the identity of the product for which the price applies may besupplied by one or more third party websites (such as shopping.com) orfrom the server (which itself may receive the data from one or morethird party websites).

The server 100 may also provide various other services to users. Uponaccessing a web page supplied by the server 100, the user may search forhis or her highest rated websites or other content items (e.g., to findall the websites that he or she has rated as 5 stars, or greater than orequal to 4 stars, etc.). Additionally, the user may search for thehighest rated websites (or other content) by all users or the highestrated websites (or other content such person, product, manufacturer,etc.) by all users in a particular category (e.g., video sites, retailsites, banking sites, sports sites, or in the case of rated persons,men, women, blogger, blogger commenter etc.). Thus, when providing areview the first ten users may be asked to categorize the content (andsub-content in some instances) to be rated which, and in someembodiments, may be at least one or more of the following:

-   -   1. website (domain) and the type of website (social website,        dating site, sports site, blog (and type of blog), retail (and        type of retail) etc.)    -   2. person (e.g., a person in the media, providing comments on a        website/blog, celebrity, politician, described in the news,        etc.)    -   3. personal page (e.g., a person's profile page on a social        networking site or dating site)    -   4. video file (and type such as comedic, action, political,        etc.)    -   5. video source    -   6. video channel    -   7. image    -   8. audio file (and type such as music (and type of music),        comedic, etc.)    -   9. digital radio station    -   10. product (and type of product)    -   11. vender    -   12. manufacturer    -   13. service or service provider

The server 100 may then categorize the rated content in accordance withthe most common category assessed by the first ten users. Alternately,the user may asked to supply one or more tag words (one or more wordsthat describes the content such as umbrella, funny video, real estateagent, doctor, etc.) as illustrated in FIG. 6. Thus, the server 10 mayallow users to search the internet for the top rated audio comedic audiofiles, top rated retail websites of a particular category, or the toprated content of another type (e.g., video) and sub-type (e.g., comedicvideo) by searching the categories and/or tag words. The server 100 maythen allow users to browse a directory of rated content wherein thedirectory is based on the user categorizations and presented inaccordance with user ratings (sorted and then displayed in descendingrating order).

In addition, after a domain, webpage, or other content item is rated,the server 100 may transmit a request to obtain metadata of the websitesuch as, for example, meta Content keywords and/or description, whichmay be stored in memory in association with the rated content, ratingsand reviews. Thus, when a user searches for highly rated content, theserver 100 may search the keyword data and/or description of thesearched content and limit the search results to content having thesearch words (and similar words) in the keyword data and/or descriptiondata (or other metadata). Thus, the server 100 may employ a softwareprogram that executes periodically (e.g., nightly) that transmits arequest for each web page (e.g., of each domain) that gets rated. Themetadata collected forms part of the web page (e.g., the home or rootweb page for the website) of the rated domains. More specifically, themetadata collected from each web page may include the title (identifiedas the text between the <title>and </title> tags), the meta namedescription (identified as the text after the tag <metaname=“description” “content=“. . . ”>), meta name keywords (identifiedas the text after the tag <meta name=”keywords” content=“. . . ”> in thewebpage (e.g., index.html, default.htm, etc.), and any other suitablecontent descriptive of the web page. The server 100 (by parsing the metaname tags) may store the collected data in separate fields in a databasein association with the domain (or other content item) rated.

As discussed, the server 100 receives a notification each time a uservisits a new web page. Upon registering with the server 100, users mayconfigure their data. For example, a user may permit the server 100 tostore in its memory each site visited indefinitely. Consequently, a usermay log into the server 100 to look at all the websites that the userhas visited in the past day, week, month, etc. and may readreviews/ratings, and post reviews/ratings for each. This feature may beespecially helpful if a user has previously found some desirable contentbut is unable to recall what website had the content. The user may alsoconfigure the server 100 to not store the user's surfing history. Aparent or employer may also view the domains and web pages that thechild or employee has viewed. In addition, via the host website, a usermay search for other users having visited a particular website (e.g.,zizbang.com), for other users who visit some of the same websites (e.g.,user who visit five or more of the same website), for users who visitthe same types of websites (e.g., financial websites), and/or for userswho visit similar websites (e.g., kayaking websites). Provided the otherusers' privacy settings are set appropriate, the server 100 may querythe database according to the search request and transmit a list ofusers most closely satisfying the search request.

The user may also bookmark sites for storage of the bookmarks on theserver 100. Thus, a user may click on a bookmark button (e.g., afavorites button 123) to store the web address of the presently loadedweb page on the server 100 in association with the user's user id.

Social networks are becoming more and more widely used and end users aredeveloping strong social networks and participating in various socialgroups. The present invention may be used by a member to moreeffectively share information with the member's friends and are membersof the user's social networks. In addition, information from a user'ssocial networks may be used to provide a better rating of a website orother content. For example, a user may import (upload) information ofhis or her social group (e.g., a list of friends, connections or theidentity of a group), which may be stored on the server 100. A user mayalso supply his or her social groups, professional associations, emailaddress(es) and usernames at one or more other websites such as socialnetworking sites, dating sites, professional sites, blogs, etc. Thus,when other user's import or otherwise provide their lists ofconnections/contacts, the server 100 may have sufficient information to“connect” the two users and provide additional services such as alertingboth users when they are visiting the same website. In addition, insteadof searching for content that has been top rated by the public at large,the user can search for content that has been given a high rating byother users of the same group (professional engineers, IEEE, Republican,Democrat, etc.) and/or that are in that user's list of friends orconnections. Such groups may be those people in the groups identified bythe member. Alternately, the server 100 website (itself being a socialnetwork) may allow members to establish groups and searching may belimited to the average ratings of content items (e.g., website domains)that is computed by averaging only the ratings of the members of the oneor more groups.

In addition, the server 100 may store a list of websites (and/or webpages) visited by each user. Thus, a first user may request and receivefrom the server 100 of list of the websites (or web pages) visited(e.g., in the last week) by—or all the favorites of—one or more otherparticular users in the first user's friend list, all user's in thefirst user's friend list, the top rated websites (or other content) ofone or more users in the first user's friend list, and/or other list ofcontent. Thus, a user can see his friends “favorites” and a list oftheir recent activity. In addition, users may also bookmark any webpagevia a bookmark button displayed by some embodiments of the CSPC, whichcauses the CSPC to cause a pop-up to be displayed to receive additionalinformation about the bookmark—all of which is transmitted to the server100 and stored in association with that user. Other users who areconnected to that user (e.g., in a friends list) via the social networkhosted by the server 100 (or other interconnected server) may view thatuser's bookmarks (and any associated comments, ratings, and reviews) andvisit the bookmarked web pages. In addition, a user may set his or herconfiguration data to receive a notification when any or specificfriends (or members of a group) rate a site, review a site, bookmark asite, or add a site as a favorite. The notification may be received viaemail and/or posted on the user's home page of the host website to beviewed when the user views the page to review messages and activity ofhis or her friends.

In addition, when a user logs into the server 100, the user may receivea visual indication indicating that other users in that user's list offriends or connections or in the same social group have rated new sitesand/or rated one or more new sites with a high rating. The user can thenrequest to see the newly rated sites and click a link to view them.

A user (a first user) may change his associated configuration with theserver 100 to configure the server 100 to transmit a notification fordisplay by the CSPC when any other identified users (e.g., usersidentified in the first user's friend list (either on the server 100and/or one or more social networking sites (e.g., Twitter)) are activeon the same website that the first user is active (e.g., to therebyallow the first user to attempt to communicate with one or more or ofthem (e.g., via instant messaging, phone, email, etc.) and/or that haverecently (e.g., within the last hour, day, or week) have visited thatwebsite (or web page). Thus, the server may perform the processes ofidentifying one or more friends of the user associated with the IDreceived from the CSPC; determining whether the one or more friends ofthe have received a web page from the domain within a predetermined timeperiod; and transmitting a friend notification to the end user computingdevice if one of the one or more friends of the user have received a webpage from the domain within the predetermined time period and whereinthe friend notification identifies at least one friend. The CSPCexecuting on the end user computing device may then receive the friendnotification, and display a visual representation of the at least onefriend identified in the friend notification concurrently with the webpage (e.g., in the toolbar). In addition, any user may also elect to beinvisible so that other users are not notified when they are visitingany common website or select websites.

As discussed, websites operators can put a graphic on their page with alink to their reviews and ratings and that dynamically provides theiraverage rating and number of reviews to their visitors and any fraudalerts. Such operators may be automatically notified if a user providesa poor rating (e.g., a one or two stars) or flags the website with afraud alert. The operator may then be given one week to resolve thedispute with the user (to get the user to change the rating and reviewand/or remove the fraud alert) before the server 100 displays the fraudalert or includes the rating into the average rating computation.Similarly, users may include the graphic on third party websites whenthey post a comment, on their dating site profile web page, and/or theirown social networking profile pages.

Different types of content may have a different rating scale and/or berated differently. For example, users may be rated based on theusefulness of their comments on blogs, their integrity, their fun factor(e.g., on a dating site), or other parameter. Different visualindicators may be used to indicate a different rated parameter.

In response to a user request, for any given rated content the serverwill transmit for display statistical information about a website suchas the number of 1, 2, 3, 4 and 5 star reviews, the number of fraudalerts, the date of the most recent fraud alerts, etc.

Users may also become a social member of the host website hosted by theserver 100 and establish a personal page, connect to (befriend) othermembers and post content about themselves.

In one embodiment the server 100 stores:

Rated Content

-   -   Statistical (average rating), ratings, review count, tags and/or        classifications, etc.

For each operator of each domain (and other media content owners)

-   -   Configuration Data (if applicable)        -   Alerts, membership (e.g., send fraud alert, low rating            alert, etc.) classification        -   tags, user classifications, keywords,

For each user:

-   -   user info (username, password);    -   ratings and reviews and domains (and sub-content's if applicable        such as identifiers);    -   Configuration data—Friends, privacy settings, email settings,        etc.

More specifically, in one embodiment where the system allows ratings ofdomains and persons on social networks and dating sites, the server 100may store (or have access to) a database that includes a plurality oftables such as those identified below. It is worth noting that the tableand database may include additional (or different) information.

A user table that stores for each user:

-   -   A. user ID (e.g., also stored in cookie)    -   B. username (selected by user)    -   C. password    -   D. email address    -   E. referring user ID (user ID of member who referred user (if        any))    -   F. user info (first name, last name, city, country, zip code,        gender, Birth date).    -   G. List of friends—emails (and user ID when joined) that the        user has given privileges to view their ratings and reviews.

A Reviews Table that stores for each rating/review:

-   -   H. user ID of the user providing the rating    -   I. Content ID (to identify the content item of Content Table        being rated/reviewed)    -   J. rating (e.g., a number 1-5)    -   K. review, if any (e.g., text description)    -   L. A review title (e.g., text)    -   M. A domain of rated content    -   N. A URL provided by CSPC 115

A Content Table content item rated (e.g., domain or person)

-   -   O. Content ID (an identifier assigned by the server)    -   P. domain name (e.g., CapitalLegalGroup.com)    -   Q. content name (e.g., this could be either the domain name or a        ID number (an ID of a of someone on facebook.com, match.com,        etc., a video or an image, or a product)    -   R. rating count—total number of ratings, which gets incremented        for each rating of that content    -   S. total rating score (the sum of all users ratings for the        content)    -   T. average rating (total rating score divided by total number of        ratings)    -   U. review count—total number of reviews (gets incremented for        each new review of that content;    -   V. Content Classification (person or website.).    -   W. Content Title (text provided user)—(would be user name or        name if it is a person being rated/reviewed or blank if it is a        domain being rated/review.    -   X. Fraud count (incremented each time someone submits a review        that includes a fraud alert).

A fourth table storing domains on which users can rate people storing:

-   -   U. Domain (e.g., Facebook.com)    -   W. PreText=the text in the URL immediately preceding the user ID        of the profile displayed on the domain (such as “user_id=”)    -   X. PostText=text in the URL immediately following the user's ID        (may be blank in some instances).    -   V. Number of characters (digits) that constitute the user ID on        this domain (if necessary)

Thus, the fourth table includes the information necessary to allow theserver 100 to parse the URLs received from multiple websites (e.g.,multiple social networks and data services) to identify the user IDassociated with the person's profile being rated on each domain.

In addition to the above, the user may annotate web pages with contentsuch as information the user wishes to see when the user returns to theweb page and/or with information that the user wishes others in his orher social group or friends list to see when they visit the web page ordomain. Such annotation may include textual comments, graphics,annotation, video, and/or audio. Thus, a user could leave an audio,video, or text comment about a blogger, website, a video, an image, or aperson on a dating or social website, etc. The annotation comment isstored in memory of the server 100 as discussed above and transmittedfor display by the CSPC 115 when a member of the users group views thecontent.

As shown in FIG. 5, at time 6 (T6), Client B may receive data from theserver 100 sent to the CSPC 115 that includes one or more of annotations(e.g., from the end user using client A), and a notification that otherusers (e.g., friends of the end user of client B) such as the end userof Client A is also active on the same domain serving the web page(e.g., the server 100 determines that the user of Client A is a friend(as determined by the host website of server 100) and has received a webpage from the same website/domain within the last five, ten, fifteen,thirty, or sixty minutes), a fraud alert, a coupon alert, a productalert, an average rating and review count of the domain (and other mediacontent associated with the received web page), and other data. Theidentity of the user's friend may be displayed on the toolbar as theirusernames, their real names, or either along with their photo (icon) assupplied to the host website on the toolbar. The user may then click onany of the identifying information to request an instant messagecommunication (to enter into a chat).

The system may employ a multi-tiered affiliate program wherein thirdparties referring new members receive a percentage of the revenuegenerated by that the user and up to four additional vertically referrednew users (total of 5 tiers). For example, each affiliate may obtain aGoogle ID, which is rotated (by the server 100) into web pages served bythe server 100 in accordance with the percent of revenue (or based onthe percentage or referred members) accorded to the affiliate.

As discussed above, the server 100 may also act as a web server to hosta website that allows member using the toolbar (or other plug-in) tointeract with other members (e.g., post messages, send emails, instantmessaging), read, edit and delete their reviews, read the reviews ofother members, search for reviews (of their own, all other members, orsearch for reviews within a group of members (e.g., entrepreneurs).

In addition, many users may use multiple social networks and datingsites. The host website may include an interface for requesting the URLto the profile page of its members at such other sites. For example, auser may provide a link to his or her profile on Facebook, MySpace,Digg, Twitter, Match.com, Date.com, and Flickr.com. If configured by theuser, the server 100 may display these links to other user who visit theuser's profile page on the host website, which therefore provides onecentral location from which to visit all of that user's profile pages.In addition, if any of those profile pages get rated (or reviewed) byanyone, the user of the host website may be provided a notification ofthe rating or review. In this embodiment, all reviews also include arating but a rating need not also include a review. Of course, theuser's profile on the host website may also be reviewed and rated and anotification provided.

Most brick and mortar establishments have a website or are otherwisedescribed on the internet (e.g., listed in a directory), which meansthey can be rated and review by the above described process. Inaddition, the server 100 may be accessible via mobile telephones thatcomprise the end user computing device discussed above. In oneembodiment, an application (a CSPC 115) executing on a mobile telephonethat includes location awareness technology (e.g., a GPS receiver andassociated mapping software (to determine address information) anddirectory information (to determine a location name or business name ofa given address) intermittently transmits the location of the telephoneto the server 100. In response, the server 100 transmits the rating andreviews (and locations) of all of the content items stored in memorythat are within a predetermined distance (e.g., one mile) of the mobiletelephone. Depending on the quantity of information to be provided, thecontent of the review may not be transmitted (and instead only the titleand rating is transmitted) although the user can request and receive thereview content. Upon receipt, a map may be displayed to the user withall the locations of the items having been rated identified on the map.If subsequent transmissions of the location data by the mobile telephoneindicate that the user has moved from his or her previous location, theserver 100 may transmit updated review data for the new location.

In addition, the mobile telephone may be configured to a obtain locationinformation of the mobile telephone at a first location. This processmay be repeated each thirty seconds. The phone may then determine afirst address associated with the first location information anddetermine a first business name associated with the first address. Themobile telephone may then transmit a request to the server 100 forrating data of the first business. The request may include the businessname and an identifier associated with the user. In response, the servermay transmit, and the mobile phone receive, the rating data for thebusiness. The request may be transmitted anytime the user changeslocations and/or anytime the user maintains a location for at least apredetermined time period (e.g., sixty seconds). Thus, the rating (andreview count) may be received as the user travels without any input bythe user.

In addition, when the user travels to any new location the mobiletelephone and inputs a rating (or rating and review) the mobiletelephone may perform the process of obtaining location information ofthe mobile telephone, determining an address associated with thelocation information; determining a business name associated with theaddress; and transmitting the user rating (or user rating and review),the address, the identifier, and the business name to the remote serverfor processing (for storage in association with the user and for beingfactored into the average rating for the business name). Thus, the usermay not need to supply the address, business name, etc. when providing areview and/or rating.

The user may also set configuration data on his or her mobile computingdevice. For example, the user may set a configuration so that the mobiletelephone emits an audible alert or vibratory alert if a particularcontent item (e.g., a restaurant, coffee shop, antique store, babystore, park, etc.) that is rated above a rated threshold value (e.g.,4.5 stars or zero stars) is within a threshold distance (e.g., 0.5miles) from the mobile computing device. The emission of the alerts maybe controlled by the server 100 which monitors the location of the phone(as received from the mobile telephone or other system), compares thelocation with the rated content items within a predetermined distance(e.g., is the content item within the threshold distance), compares theratings and other characteristics of the rated content item (e.g., thetype of item rated and the rating) with the configuration data suppliedby the user (e.g., compare with type of content item, rated thresholdvalue) to determine whether to emit the alert (and may then transmitcontrol data to the mobile phone which emits the alert in response toreceiving the control data). Alternately, the emission of the alerts maybe controlled by the mobile telephone which monitors its location,compares its location with the location rated content items receives(e.g., is the rated content item within the threshold distance),compares the ratings and other characteristics of the content items(e.g., the type of item rated) with the configuration data supplied bythe user (e.g., type of content item, rated threshold value) todetermine when to emit the alert. In some embodiments, the server 100and the end user computing device may cooperate to cause the alerts tobe emitted. In addition, the order of these steps may be vary andcomprise any suitable order.

In addition, users with mobile devices having the GPS also may rate and(if desired) review any location. For example, instead of finding thewebsite associated with the business (or park, etc.) that they are in,the user may simply open the rating application (CSPC 115) resident onthe phone and input a rating (e.g., 4 stars), which is transmitted alongwith the mobile telephone's location to the server 100. If necessary(depending on the form of the location data sent to the server), theserver 100 may then determine the address corresponding to the receivedaddress data. Additionally, if necessary, the server 100 may determinethe business (or otherwise identity the location such as being a park,an airport, etc.) corresponding to the address (or location data).Alternately, the mobile telephone may determine the address and businessat the location where the user enters the rating data, which is thentransmitted to the server 100 for storage along with the rating data anduser ID (e.g., which may comprise the user's telephone number).

The rating data and information identifying the location (e.g., the nameof the location such as the business name, or other name of location(such as central park, JFK airport)) are stored in memory. In addition,the server 100 and/or the mobile telephone also may store data (alongwith the rating data) of the category of the location such as the typeof restaurant (e.g., Chinese, American, fast food, etc.), antiquedealer, park, book store, etc. The data of the type of location may be(1) supplied by the user rating the location; and/or (2) collected bythe server 100 (or mobile telephone) from a local or third partydirectory after the address or name of the location (e.g., business) isdetermined. Additionally, after the first or some other number of usersfirst rate the location, many of these steps may be omitted since theserver 100 will already know the category and name of the locationalthough the steps may periodically or continuously be performed toaccount for the possibility that the information may change (e.g., a newbusiness may open at the location).

The server may be configured to inform the user when any of his or herfriends are within a predetermined distance to the user (e.g., such atthe same address or business) or when the friend has visited the user'spresent location within a predetermined time period (e.g., the lastthirty minutes). The server may receive the location information of thephone (e.g., address, business name, or coordinates) and the IDassociated with the user from the mobile telephone; identify one or morefriends of the user associated with the ID; determine whether the one ormore friends are present at the same location (or were present within apredetermined time period); and, if so, transmit a friend notificationto the mobile telephone. The friend notification identifies the one ormore friends and the mobile telephone receives the friend notificationand displays a visual representation of friends identified in the friendnotification.

A system and method for providing ratings related to a plurality ofwebsites is provided. One embodiment of the system may include programcode adapted to execute as a browser toolbar to implement a methodcomprising retrieving an identifier from the end user computing device,transmitting a request to a remote computer system for a rating value inresponse to a web page being loaded into the browser, receiving a ratingvalue from the remote computer system, displaying the rating value inthe toolbar, receiving a first user rating of the user from the remotecomputer system, displaying the first user rating in the toolbar,receiving a user input comprising a second user rating from the enduser, transmitting the second user rating to the remote computer system,and displaying the second user rating in the toolbar. The remotecomputer system may store user ratings and reviews and transmit userratings, an average rating, and a review count. The remote computersystem may also parse URLs to determine whether the domain of the URLcomprises a domain for which content may be rated. By parsing out anidentifier of the URL for such domains, the system can be used to rateprofiles of people on social networks and dating websites.

Thus, one embodiment of a system for providing ratings related to aplurality of websites, comprises a first program code comprising acomputer usable medium having a computer readable program code embodiedtherein, said computer readable program code adapted to execute as abrowser toolbar in a browser on an end user computing device andexecutable to implement a method comprising retrieving an identifier(ID) from the end user computing device; transmitting a request to aremote computer system for a rating value in response to a web pagebeing loaded into the browser executing on the end user computingdevice; wherein the request includes the ID and a Uniform ResourceLocator (URL) of the web page loaded in the browser executing on the enduser computing device; receiving a rating value from the remote computersystem; displaying the rating value in the toolbar; receiving a firstuser rating from the remote computer system; displaying the first userrating in the toolbar; receiving a user input comprising a second userrating from the end user; transmitting the second user rating to theremote computer system; and displaying the second user rating in thetoolbar. The remote computer system may be configured to receive thesecond user rating; store the second user rating; calculate a new ratingvalue incorporating the second user rating; and store the new ratingvalue in memory. The URL may include a domain and the remote computersystem may be configured to receive coupon content from one or moreother remote computer systems; determine if coupon content is availablefor the domain; transmit an alert to the end user computing device ifany coupon content is available for the domain; and wherein the firstprogram code is executable to receive the alert and display the alert inthe toolbar. The URL may include a domain and the remote computer systemalso may be configured to receive the ID; identify one or more friendsof the user associated with the ID; determine whether any of the one ormore friends have received a web page from the domain within apredetermined time period; and transmit a friend notification to the enduser computing device if one of the one or more friends of the user havereceived a web page from the domain within the predetermined timeperiod. The friend notification may identify at least one friend and themethod may further comprises receiving the friend notification; anddisplaying a visual representation of the at least one friend identifiedin the friend notification concurrently with the web page. The methodmay further comprise transmitting the URL of the web page loaded intothe browser in addition to the rating input and ID.

The remote computer system may be configured to receive the URL; parse adomain from the URL; determine the rating value based on the domain; andtransmit the rating value to the browser executing the first programcode that transmitted the request as well as retrieve from memory thefirst user rating for the parsed domain and the received ID; andtransmit the first user rating to the end user computing deviceexecuting the first program code. The remote computer system may beconfigured to store a plurality of user ratings for each of a pluralityof domains in a database; receive the URL; parse a domain from the URL;determine the rating value for the domain based upon the plurality ofuser ratings for the parsed domain; and transmit the rating value to theend user computing device executing the first program code. The remotecomputer system may be configured to receive from a client a searchrequest that includes one or more keywords; search one or more fields ofthe database for domains having the one or more keywords to providesearch results; sort the search results, at least in part, in descendingorder of the rating value associated with each domain of the searchresults; and transmit at least a portion of the sorted search results tothe client from which the search request is received. The remotecomputer system may be further configured to store a plurality of userreviews for each of a multitude of domains in the database; and whereineach of the plurality user reviews are associated in memory with adifferent user rating. In addition, the remote computer system may beconfigured to receive the URL; parse a domain from the URL; determinewhether the domain comprises a domain on which content may be rated; andif the domain comprises a domain on which content may be rated, parse acontent identifier from the URL; search a database for a content ratingvalue associated with the domain and the content identifier; andtransmit the content rating value as the rating value to the browserexecuting the first program code that transmitted the request.

In another embodiment, a method of distributing meta data related towebsites to an end user, may comprise with an end user computing device,transmitting to a remote computer system a first URL of a first webpagereceived from a first web server and loaded into a browser executing onthe end user computing device; and with the remote computer systemreceiving the first URL; parsing the first URL to determine a firstdomain of the URL; retrieving from memory a first rating valueassociated with the first domain; and transmitting first rating value tothe end user computing device. The method may further comprise with theend user computing device; receiving the first rating value; displayingthe first rating value concurrently with the first web page; receiving auser input comprising a first user rating indicative of a rating of thedomain; transmitting the first user rating to the remote computersystem; and with the remote computer system: receiving the first userrating; storing the first user rating in memory in association with thefirst domain; wherein the first rating value comprises an average userrating of the first domain supplied by a plurality of users; calculatinga second rating value for the first domain that incorporates thereceived first user rating; storing the second rating value in thememory in association with the first domain; transmitting the secondrating value to the end user computing device. The method may furthercomprise with the end user computing device; receiving the second ratingvalue; and displaying second rating value concurrently with the webpage. The first rating value may comprise an average rating of the firstdomain by one or more users and the method may further comprise with theremote computer system: retrieving from memory a user rating associatedwith the website domain previously supplied by the end user;transmitting the retrieved user rating to the end user computing deviceand with the end user computing device: receiving the user rating; anddisplaying the user rating concurrently with the web page. The methodmay further comprise with the remote computer system: determiningwhether the domain comprises a domain on which content may be rated; andif the domain comprises a domain on which content may be rated, parsinga content identifier from the first URL; searching a database for acontent rating value associated with the domain and the contentidentifier; and transmitting the content rating value as the ratingvalue to the browser executing the first program code that transmittedthe request.

The method may further comprise with the end user computing device,transmitting an identifier (ID) associated with the end user to theremote computer system; and with the remote computer system: receivingthe identifier; identifying one or more friends of the user; determiningwhether any of the one or more friends have received a web page from thedomain within a predetermined time period; and transmitting a friendnotification to the end user computing device if one of the one or morefriends have received a web page from the first domain within thepredetermined time period; and wherein the friend notificationidentifies at least one friend. The method may further comprise with theend user computing device: receiving the friend notification; anddisplaying a visual representation of the at least one friend identifiedin the friend notification concurrently with the web page.

In yet another embodiment of the present invention, a computer programproduct, comprising a computer usable medium having a computer readableprogram code embodied therein, said computer readable program codeadapted to implement a method for providing ratings related to alocation of a mobile computing device having a GPS receiver, the methodcomprising A. obtaining first location information of the mobilecomputing device at a first location; B. determining a first addressassociated with the first location information; C. determining a firstbusiness name associated with the first address; D. transmitting arequest to a remote computer system for a rating value of the firstbusiness name; wherein the request includes the business name and anidentifier associated with a user; and E. receiving a rating value forthe first business name from the remote computer system. The method mayfurther comprise receiving a first user rating at a second location;obtaining second location information of the mobile computing device atthe second location; determining a second address associated with thesecond location information; determining a second business nameassociated with the second address; and transmitting the first userrating, the second address, and the second business name to the remotecomputer system. Processes A-E may be performed without input from theuser as the mobile computing device changes location. The method mayfurther comprise receiving from the remote computer system a user ratingassociated with the transmitted identifier; and displaying the receiveduser rating.

The servers described herein may include one or more computer systemsthat each include a processor, memory, user input and user outputmechanisms, a network interface, and executable program code (software)stored in memory that executes to control the operation of the server.Various commercially available computer systems and operating systemssoftware may be used to implement the hardware and software. Thecomponents of each server may be co-located or distributed. In addition,all or portions of the same software and/or hardware may be used toimplement two or more of the functional servers shown. Thus, in someembodiments the components of the figures may be considered functionalcomponents that employ the same hardware and some of the same programcode. Other embodiments may include different functional components. Inaddition, the present invention is not limited to a particularenvironment or server configuration.

It is to be understood that the foregoing illustrative embodiments havebeen provided merely for the purpose of explanation and are in no way tobe construed as limiting of the invention. Words used herein are wordsof description and illustration, rather than words of limitation. Inaddition, the advantages and objectives described herein may not berealized by each and every embodiment practicing the present invention.Further, although the invention has been described herein with referenceto particular structure, materials and/or embodiments, the invention isnot intended to be limited to the particulars disclosed herein. Rather,the invention extends to all functionally equivalent structures, methodsand uses, such as are within the scope of the appended claims. Thoseskilled in the art, having the benefit of the teachings of thisspecification, may affect numerous modifications thereto and changes maybe made without departing from the scope and spirit of the invention.

1. A computer program product, comprising a non-transitory computerusable medium having a computer readable program code embodied therein,said computer readable program code adapted to implement a method forproviding information to and from a plurality of mobile devices, saidmethod comprising: receiving, from each of the plurality of mobiledevices, information of a location of the mobile device, informationidentifying the mobile device, and rating data, supplied by a user ofthe mobile device, that relates to a business at the location of themobile device; storing, in a memory, received rating data in associationwith the location of the mobile device; computing a rating value for aplurality of businesses for which multiple rating data has beenreceived; storing the rating value in memory in association with theplurality of businesses; a) receiving from a first mobile device,location information of the first mobile device and informationidentifying the first mobile device; b) based on the received locationinformation of the first mobile device, retrieving the rating valueassociated with one or more businesses within a distance of the locationof the first mobile device; c) transmitting the rating value of the oneor more businesses locations within a distance of the location of thefirst mobile device to first the mobile device for presentation to theuser of the first mobile device; and performing a-c for a plurality oflocations of the first mobile device.
 2. The computer program product ofclaim 1, wherein said method further comprises storing informationidentifying a business category associated with each location.
 3. Thecomputer program product of claim 1, wherein the information of thelocation received from the plurality of mobile devices comprises namesof businesses.
 4. The computer program product of claim 1, furthercomprising a non- transitory computer usable medium having a computerreadable program code embodied therein, said computer readable programcode adapted to implement a method of operation of a mobile device, themethod of operation comprising: performing the following processeswithout receiving a user input: determining the information of thelocation of the mobile device; transmitting the information of thelocation of the mobile device to a remote computer; receiving the ratingvalue of the one or more businesses; and outputting for presentation tothe user the rating value for at least some of the one or morebusinesses locations.
 5. The computer program product of claim 4, themethod of operation comprising determining a name of a business at thelocation of the mobile device without receiving a user input.
 6. Thecomputer program product of claim 1, wherein said method furthercomprises storing user configuration information of the user of thefirst mobile device in memory; and wherein said transmitting comprisestransmitting the rating value only for the one or more businesses thatsatisfy criteria of the user configuration information of the user ofthe first mobile device.
 7. The computer program product of claim 1,wherein said method further comprises: receiving from a second mobiledevice, information of a location of the second mobile device, andinformation identifying the second mobile device; based on theinformation identifying the second mobile device, identifying aplurality of members of a network having a connection to a user of thesecond mobile device; based on the location of the second mobile device,determining that a location of a third mobile device associated with amember of the network having a connection to the user of the secondmobile device is within a distance of the location of the second mobiledevice; transmitting a notification to the second mobile device thatindicates that the member of the network having a connection to the userof the second mobile device is within a distance of the location of thesecond user; and wherein the notification identifies the member of thenetwork having the connection to the user of the second mobile device.8. The computer program product of claim 1, wherein the method furthercomprises: determining if a coupon is available for a business within adistance of the location of the first mobile device; and transmitting anotification to the first mobile device if a coupon is available for abusiness within a distance of the location of the first mobile device.9. The computer program product of claim 1, wherein the method furthercomprises: receiving a search request that includes one or more keywordsfrom a second mobile device; searching a database for the one or morekeywords to provide search results; sorting the search results based, atleast in part, on the rating value; and transmitting at least a portionof the sorted search results to the second mobile device.
 10. A methodfor facilitating communications between a plurality of users, each userhaving a mobile device configured to communicate wirelessly, and whereinat least some of the users are a member of a social network, the methodcomprising: storing in a memory information identifying each of theplurality of users and an associated mobile device; receiving, from eachof a plurality of mobile devices, information of a location of themobile device and information sufficient for identifying the userassociated with the mobile device; receiving from a first mobile device,location information of the first mobile device and informationsufficient for identifying a first user associated with the first mobiledevice; based, at least in part, on the information received from thefirst mobile device, determining that a location of a second mobiledevice associated with a member of the social network having aconnection to the first user satisfies a similarity threshold to alocation of the first mobile device; transmitting a notification to thefirst mobile device that indicates that the member of the network havinga connection to the first user is at a location that satisfies thesimilarity threshold to the location of the first user; and wherein thenotification identifies the member of the network having the connectionto the first user.
 11. The method according to claim 10, wherein saidreceiving from each of the plurality of mobile devices further comprisesreceiving rating data supplied by the user of the mobile device, themethod further comprising: storing, in a memory, received rating data inassociation with the location of the mobile device; and computing anaverage rating for a plurality of locations for which multiple ratingdata is received.
 12. The method according to claim 11, furthercomprising: a) receiving from a third mobile device, locationinformation of the third mobile device and information identifying thethird mobile device; b) based on the received location information ofthe third mobile device, retrieving the average rating associated withone or more locations within a distance of the location of the thirdmobile device; c) transmitting the retrieved average rating of the oneor more locations within a distance of the location of the third mobiledevice to the third mobile device for presentation to the user of thethird mobile device; and performing a-c for a plurality of locations ofthe third mobile device.
 13. The method according to claim 11, themethod further comprising: receiving a search request that includes oneor more keywords from a third mobile device; searching a database forthe one or more keywords to provide search results; sorting the searchresults based, at least in part, on the average rating; and transmittingat least a portion of the sorted search results to the third mobiledevice.
 14. The method according to claim 10, further comprising:receiving from a third mobile device, associated with a third user,information regarding a first location supplied by the third user;receiving location information of a fourth mobile device associated witha fourth user; determining that the fourth mobile device is within adistance of the first location; and in response to said determining thefourth mobile device is within a distance of the first location,transmitting data regarding the first location, based at least in parton the information supplied by the third user, to the fourth mobiledevice for presentation to the fourth user.
 15. The method according toclaim 10, the method further comprising: determining if a coupon isavailable for a business within a distance of the location of the firstmobile device; and transmitting a notification to the first mobiledevice if a coupon is available for a business within a distance of thelocation of the first mobile device.
 16. A method for facilitatingcommunications between a plurality of users having a mobile deviceconfigured to communicate wirelessly, the method comprising: storing ina memory information identifying each of a plurality of users and anassociated mobile device; receiving, from each of a plurality of mobiledevices, information of a location of the mobile device and informationsufficient for identifying the user associated with the mobile device;receiving from a first mobile device information regarding a businesslocated at a first location that is supplied by the first user;receiving location information of a second mobile device associated witha second user; determining that the second mobile device is within adistance of the first location; and in response to said determining,transmitting data related to the business, based at least in part on theinformation supplied by the first user, to the second mobile device forpresentation to the second user.
 17. The method according to claim 16,wherein the information regarding the business that is supplied by thefirst user comprises a rating of the business.
 18. The method accordingto claim 16, wherein the information regarding the business that issupplied by the first user comprises a textual review of the business.19. The method according to claim 16, wherein at least some of the usersare a member of a network, the method further comprising: receiving froma third mobile device, location information of the third mobile deviceand information sufficient for identifying a third user associated withthe third mobile device; based at least in part on the informationreceived from the third mobile device, determining that a location of afourth mobile device associated with a member of the social networkhaving a connection to the third user is within a distance of thelocation of the third mobile device; transmitting a notification to thethird mobile device that indicates that the member of the network havinga connection to the third user is within a distance of the location ofthe third user; and wherein the notification identifies the member ofthe network having the connection to the third user.
 20. The methodaccording to claim 16, the method further comprising: determining if acoupon is available for a business within a distance of the location ofthe first mobile device; and transmitting a notification to the firstmobile device if a coupon is available for a business within a distanceof the location of the first mobile device.
 21. The method according toclaim 16, wherein said receiving from a first mobile device informationregarding a business located at a first location that is supplied by thefirst user comprises receiving rating data for the business, the methodfurther comprising: storing received rating data in association with thebusiness; computing an average rating for a plurality of businesses forwhich multiple rating data is received; a) receiving from a third mobiledevice, location information of the third mobile device and informationidentifying the third mobile device; b) based on the received locationinformation of the third mobile device, retrieving the average ratingassociated with one or more businesses within a distance of the locationof the third mobile device; c) transmitting the retrieved average ratingof the one or more businesses within a distance of the location of thethird mobile device to the third mobile device for presentation to theuser of the third mobile device; and performing a-c for a plurality oflocations of the third mobile device.
 22. The method according to claim21, the method further comprising: receiving a search request thatincludes one or more keywords from a fourth mobile device; searching adatabase for the one or more keywords to provide search results; sortingthe search results based, at least in part, on the average rating; andtransmitting at least a portion of the sorted search results to thefourth mobile device.